<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>混凝土回弹强度计算</title>
  <style>
    body {
      background-color: #0077be;
      /* 设置背景颜色 */
    }

    table {
      table-layout: fixed;
      width: auto;
      white-space: nowrap;
      border-collapse: collapse;
    }

    input {
      width: 100%;
      box-sizing: border-box;
    }

    input[type=number] {
      text-align: center;
      width: 3em;
      box-sizing: border-box;
    }

    input[type="file"]::file-selector-button {
      content: "导入数据";
    }

    input[type=number]::-webkit-inner-spin-button,
    input[type=number]::-webkit-outer-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }

    th {
      border: 1px solid;
    }

    td {
      width: 2em;
      height: 1.5em;
      border: 1px solid;
      text-align: center;
      vertical-align: middle;
    }
  </style>
</head>

<body>

  <script>
    // 创建一个 10 行 27 列的二维数组来存储表格数据
    const data = new Array(10).fill(``).map(() => new Array(27).fill(``));
    // 填充第一列数据为 1-10 的序号
    for (let i = 0; i < data.length; i++) {
      data[i][0] = i + 1;
    }
    // 创建一个函数来生成表格的 HTML 代码
    {
      function generateTableHTML(data) {
        let html = `<table id="myTable">`;

        // 添加表头行
        html += `<thead><tr>`;
        for (let i = 0; i < data[0].length; i++) {
          if (i === 0) {
            html += `<th>测区</th>`;
          }
          if (i > 0 && i < 17) {
            html += `<th> ${i}</th>`;
          }
          if (i === 16) {
            html += `<th>回弹<br>平均值</th>`;
          }
          if (i === 17) {
            html += `<th>角度</th>`;
          }
          if (i === 18) {
            html += `<th>角度<br>修正值</th>`;
          }
          if (i === 19) {
            html += `<th>角度<br>修正后</th>`;
          }
          if (i === 20) {
            html += `<th>浇筑面</th>`;
          }
          if (i === 21) {
            html += `<th>浇筑面<br>修正值</th>`;
          }
          if (i === 22) {
            html += `<th>浇筑面<br>修正后</th>`;
          }
          if (i === 23) {
            html += `<th>碳化<br>深度</th>`;
          }
          if (i === 24) {
            html += `<th>是否<br>泵送</th>`;
          }
          if (i === 25) {
            html += `<th>换算值</th>`;
          }
        }
        html += `</tr></thead>`;

        // 添加表格数据行
        html += `<tbody>`;
        for (let i = 0; i < data.length; i++) {
          html += `<tr>`;
          for (let j = 0; j < data[i].length; j++) {
            if (j === 1 || j === 2 || j === 3 || j === 4 || j === 5 || j === 6 || j === 7 || j === 8 || j === 9 || j === 10 || j === 11 || j === 12 || j === 13 || j === 14 || j === 15 || j === 16 || j === 18 || j === 24) {
              // 添加输入框
              html += `<td><input type="number" id="v` + i + j + `" onchange="updateArray(` + i + `, ` + j + `, this.value)"  value="${data[i][j]}" /></td>`;
            } else if (j === 21 || j === 25) {
              // 添加上面的 10*16 的输入框
              html += `<td><input id="v` + i + j + `" type="text" onchange="updateArray(` + i + `, ` + j + `, this.value)" /></td>`;
            } else {
              // 添加显示框
              html += `<td id=TD` + i + j + `>${data[i][j]}</td>`;
            }
          }
          html += `</tr>`;
        }
        html += `</tbody>`;

        html += `</table>`;
        return html;
      }
      // 生成表格的 HTML 代码并将其插入到页面中
      const tableHTML = generateTableHTML(data);
      let dr = `<h3>选择要导入的文本文件（记事本）：</h3><input type="file" id="fileInput" accept=".txt"><br>`
      let dc = `<h3>点击下面按钮导出数据：</h3><button onclick="exportTableToCSV('data.csv')">导出数据</button><br>`
      let cl = `<h3>点击下面按钮清空数据：</h3><button onclick="location.reload()">清空数据</button><br>`
      let bz = `<br><table>
      <tr>
        <th ></th>
        <th>平 均 值</th>
        <th>标 准 差</th>
        <th>强度最小值</th>
        <th>强度推定值</th>
      </tr>
      <tr>
        <td>强度计算（Mpa）</td>
        <td id="pjz"></td>
        <td id="bzc"></td>
        <td id="zxz"></td>
        <td id="tdz"></td>
      </tr>
    </table>`;
      let st = '<strong>注意：<br>程序编写依据：JGJ/T 23-2011《回弹法检测混凝土抗压强度技术规程》<br>1.角度输入的值是-90~90之间的整数。<br>2.浇筑面输入“侧面”，“表面”，“底面”<br>3.碳化深度输入 0，0.5，1.0，1.5，2.0，2.5，3.0，3.5，4.0，4.5，5.0，5.5，6.0<br>4.是否泵送输入“否”，“是”<br>5.不输入时均会采用默认值，角度默认：0，修正面默认：侧面，碳化深度默认：0，是否泵送默认：否<br>6.根据JGJ/T 23-2011 第4.4.1条，检测泵送混凝土强度时，测区应选在混凝土浇筑侧面。<br>7.当构件中出现测区强度无法查出（如大于60MPa或小于10MPa）时，因此无法计算平均值及标准差，也只能以最小值作为该强度推定值<br>8.导入的txt文本文件里测区各个数据用空格分开，每个测区用回车分开，一行16个数，10行</strong>'
      document.body.innerHTML = tableHTML + bz + dr + dc + cl + st;
    }
    // 更新二维数组中的值
    function updateArray(row, col, value) {
      if (col > 0 && col < 17) {
        value = parseFloat(value);
      }
      data[row][col] = value;
      for (let i = 0; i < data.length; i++) {
        let tan1 = new Array(16);
        var IDv;
        var angle = data[i][18];
        var jiaozhumian = data[i][21];
        var tanhuashendu = data[i][24];
        if (tanhuashendu === null || tanhuashendu < 0) {
          tanhuashendu = 0;
        }
        if (tanhuashendu > 6) {
          tanhuashendu = 6;
        }
        tanhuashendu = Math.round(tanhuashendu * 2) / 2;
        var ifbengsong = data[i][25];
        for (let j = 1; j < 17; j++) {
          tan1[j - 1] = data[i][j];
        }
        tan1 = tan1.filter(Boolean);
        IDv1 = 'TD' + i + 17;
        IDv2 = 'TD' + i + 19;
        IDv3 = 'TD' + i + 20;
        IDv4 = 'TD' + i + 22;
        IDv5 = 'TD' + i + 23;
        IDv6 = 'TD' + i + 26;

        if (tan1.length === 16) {
          tanping = getMiddleAverage(tan1);
          document.getElementById(IDv1).textContent = tanping;
          document.getElementById(IDv2).textContent = getIntersectionValue(angle, tanping);
          var jiaoduxiuzvalue = tanping * 1 + getIntersectionValue(angle, tanping) * 1;
          jiaoduxiuzvalue = parseFloat(jiaoduxiuzvalue.toFixed(1));
          document.getElementById(IDv3).textContent = jiaoduxiuzvalue;
          var jiaozhumianvalue = interpolateReboundValue(jiaozhumian, jiaoduxiuzvalue);
          document.getElementById(IDv4).textContent = jiaozhumianvalue;
          var xiuzhengwanvalue = jiaozhumianvalue * 1 + jiaoduxiuzvalue * 1;
          xiuzhengwanvalue = parseFloat(xiuzhengwanvalue.toFixed(1));
          document.getElementById(IDv5).textContent = xiuzhengwanvalue;
          huitan = tanhuachaxun(xiuzhengwanvalue, tanhuashendu);
          if (ifbengsong === "否" || ifbengsong === "") {
            data[i][26] = tanhuachaxun(xiuzhengwanvalue, tanhuashendu);
            document.getElementById(IDv6).textContent = tanhuachaxun(xiuzhengwanvalue, tanhuashendu);
          }
          if (ifbengsong === "是") {
            data[i][26] = bengsong(xiuzhengwanvalue, tanhuashendu);
            document.getElementById(IDv6).textContent = bengsong(xiuzhengwanvalue, tanhuashendu);
          }
        } else {
          document.getElementById(IDv1).textContent = "";
          document.getElementById(IDv2).textContent = "";
          document.getElementById(IDv3).textContent = "";
          document.getElementById(IDv4).textContent = "";
          document.getElementById(IDv5).textContent = "";
          document.getElementById(IDv6).textContent = "";
        }
      }
      let cd = new Array(10); //将换算值存入数组cd
     let if6010=1;
      for (i = 0; i < data.length; i++) {
        cd[i] = parseFloat(data[i][26]);
if(data[i][26]==60||data[i][26]==10){if6010=0;}
      }

      cd = cd.filter(Boolean);

      if (cd.length > 1 && cd.length < 10) {
        document.getElementById("bzc").textContent = calculateStandardDeviation(cd);
        document.getElementById("pjz").textContent = calculateAverage(cd);
        document.getElementById("zxz").textContent = Math.min(...cd);
        document.getElementById("tdz").textContent = Math.min(...cd);
      }
      if (cd.length > 9&&if6010==1) {
        document.getElementById("bzc").textContent = calculateStandardDeviation(cd);
        document.getElementById("pjz").textContent = calculateAverage(cd);
        document.getElementById("zxz").textContent = Math.min(...cd);
        document.getElementById("tdz").textContent = (calculateAverage(cd) - 1.645 * calculateStandardDeviation(cd)).toFixed(1);
      }
 if (cd.length > 9&&if6010==0) {
        document.getElementById("bzc").textContent = "/";
        document.getElementById("pjz").textContent = "/";
        document.getElementById("zxz").textContent = Math.min(...cd);
        document.getElementById("tdz").textContent =Math.min(...cd);
      }
    }
    //求回弹平均值
    function getMiddleAverage(nums) {
      // 先将数组从小到大排序
      nums.sort(function(a, b) {
        return a - b;
      });
      // 去掉最大和最小的三个数
      var middleNums = nums.slice(3, -3);
      // 求剩余十个数的平均值
      var sum = 0;
      for (var i = 0; i < middleNums.length; i++) {
        sum += middleNums[i];
      }
      var average = sum / 10;
      return parseFloat(average.toFixed(1));
    }
    //角度修正函数
    function getIntersectionValue(angle, time) {
      const data = [
        [100, 90, 60, 45, 30, 0, -30, -45, -60, -90],
        [20, -6.0, -5.0, -4.0, -3.0, 0.0, 2.5, 3.0, 3.5, 4.0],
        [21, -5.9, -4.9, -4.0, -3.0, 0.0, 2.5, 3.0, 3.5, 4.0],
        [22, -5.8, -4.8, -3.9, -2.9, 0.0, 2.4, 2.9, 3.4, 3.9],
        [23, -5.7, -4.7, -3.9, -2.9, 0.0, 2.4, 2.9, 3.4, 3.9],
        [24, -5.6, -4.6, -3.8, -2.8, 0.0, 2.3, 2.8, 3.3, 3.8],
        [25, -5.5, -4.5, -3.8, -2.8, 0.0, 2.3, 2.8, 3.3, 3.8],
        [26, -5.4, -4.4, -3.7, -2.7, 0.0, 2.2, 2.7, 3.2, 3.7],
        [27, -5.3, -4.3, -3.7, -2.7, 0.0, 2.2, 2.7, 3.2, 3.7],
        [28, -5.2, -4.2, -3.6, -2.6, 0.0, 2.1, 2.6, 3.1, 3.6],
        [29, -5.1, -4.1, -3.6, -2.6, 0.0, 2.1, 2.6, 3.1, 3.6],
        [30, -5.0, -4.0, -3.5, -2.5, 0.0, 2.0, 2.5, 3.0, 3.5],
        [31, -4.9, -4.0, -3.5, -2.5, 0.0, 2.0, 2.5, 3.0, 3.5],
        [32, -4.8, -3.9, -3.4, -2.4, 0.0, 1.9, 2.4, 2.9, 3.4],
        [33, -4.7, -3.9, -3.4, -2.4, 0.0, 1.9, 2.4, 2.9, 3.4],
        [34, -4.6, -3.8, -3.3, -2.3, 0.0, 1.8, 2.3, 2.8, 3.3],
        [35, -4.5, -3.8, -3.3, -2.3, 0.0, 1.8, 2.3, 2.8, 3.3],
        [36, -4.4, -3.7, -3.2, -2.2, 0.0, 1.7, 2.2, 2.7, 3.2],
        [37, -4.3, -3.7, -3.2, -2.2, 0.0, 1.7, 2.2, 2.7, 3.2],
        [38, -4.2, -3.6, -3.1, -2.1, 0.0, 1.6, 2.1, 2.6, 3.1],
        [39, -4.1, -3.6, -3.1, -2.1, 0.0, 1.6, 2.1, 2.6, 3.1],
        [40, -4.0, -3.5, -3.0, -2.0, 0.0, 1.5, 2.0, 2.5, 3.0],
        [41, -4.0, -3.5, -3.0, -2.0, 0.0, 1.5, 2.0, 2.5, 3.0],
        [42, -3.9, -3.4, -2.9, -1.9, 0.0, 1.4, 1.9, 2.4, 2.9],
        [43, -3.9, -3.4, -2.9, -1.9, 0.0, 1.4, 1.9, 2.4, 2.9],
        [44, -3.8, -3.3, -2.8, -1.8, 0.0, 1.3, 1.8, 2.3, 2.8],
        [45, -3.8, -3.3, -2.8, -1.8, 0.0, 1.3, 1.8, 2.3, 2.8],
        [46, -3.7, -3.2, -2.7, -1.7, 0.0, 1.2, 1.7, 2.2, 2.7],
        [47, -3.7, -3.2, -2.7, -1.7, 0.0, 1.2, 1.7, 2.2, 2.7],
        [48, -3.6, -3.1, -2.6, -1.6, 0.0, 1.1, 1.6, 2.1, 2.6],
        [49, -3.6, -3.1, -2.6, -1.6, 0.0, 1.1, 1.6, 2.1, 2.6],
        [50, -3.5, -3.0, -2.5, -1.5, 0.0, 1.0, 1.5, 2.0, 2.5]
      ];
      if (angle > 90) angle = 90;
      if (angle < -90) angle = -90;
      let angleIndex1 = 0;
      let angleIndex2 = 0;
      for (let i = 0; i < data[0].length; i++) {
        if (data[0][i] <= angle) {
          angleIndex2 = i;
          angleIndex1 = i - 1;
          break;
        }
      }
      let timeIndex1 = 0;
      let timeIndex2 = 0;
      if (time > 50) time = 50;
      if (time < 20 && time > 0) time = 20;
      for (let i = 1; i < data.length; i++) {
        if (data[i][0] >= time) {
          timeIndex2 = i;
          timeIndex1 = i - 1;
          break;
        }
      }
      const x1 = data[0][angleIndex1];
      const x2 = data[0][angleIndex2];
      const y1 = data[timeIndex1][angleIndex1];
      const y3 = data[timeIndex2][angleIndex1];
      const y2 = data[timeIndex1][angleIndex2];
      const y4 = data[timeIndex2][angleIndex2];
      const x = angle;
      const t = (time - data[timeIndex1][0]) / (data[timeIndex2][0] - data[timeIndex1][0]);
      const y12 = y1 + (y2 - y1) * (x - x1) / (x2 - x1);
      const y34 = y3 + (y4 - y3) * (x - x1) / (x2 - x1);
      const y = y12 + (y34 - y12) * t;

      return parseFloat(y.toFixed(1));
    }
    //浇筑面修正
    function interpolateReboundValue(jiaozhumian, reboundValue) {
      if (reboundValue < 20) reboundValue = 20;
      if (reboundValue > 50) reboundValue = 50;
      const data = [
        [20, 2.5, -3],
        [21, 2.4, -2.9],
        [22, 2.3, -2.8],
        [23, 2.2, -2.7],
        [24, 2.1, -2.6],
        [25, 2.0, -2.5],
        [26, 1.9, -2.4],
        [27, 1.8, -2.3],
        [28, 1.7, -2.2],
        [29, 1.6, -2.1],
        [30, 1.5, -2.0],
        [31, 1.4, -1.9],
        [32, 1.3, -1.8],
        [33, 1.2, -1.7],
        [34, 1.1, -1.6],
        [35, 1.0, -1.5],
        [36, 0.9, -1.4],
        [37, 0.8, -1.3],
        [38, 0.7, -1.2],
        [39, 0.6, -1.1],
        [40, 0.5, -1.0],
        [41, 0.4, -0.9],
        [42, 0.3, -0.8],
        [43, 0.2, -0.7],
        [44, 0.1, -0.6],
        [45, 0.0, -0.5],
        [46, 0.0, -0.4],
        [47, 0.0, -0.3],
        [48, 0.0, -0.2],
        [49, 0.0, -0.1],
        [50, 0.0, 0.0]
      ];
      let i = 0;
      while (i < data.length && data[i][0] < reboundValue) {
        i++;
      }
      if (i === 0) {
        i = 1;
      }
      const lowerBound = data[i - 1];
      const upperBound = data[i];

      // Calculate the slope of the line connecting the two bracketing points
      const slopeSurface = (upperBound[1] - lowerBound[1]) / (upperBound[0] - lowerBound[0]);
      const slopeBottom = (upperBound[2] - lowerBound[2]) / (upperBound[0] - lowerBound[0]);

      // Use the slope and one of the bracketing points to interpolate the surface and bottom values
      const surfaceValue = lowerBound[1] + (reboundValue - lowerBound[0]) * slopeSurface;
      const bottomValue = lowerBound[2] + (reboundValue - lowerBound[0]) * slopeBottom;
      if (jiaozhumian === "表面") {
        return parseFloat(surfaceValue.toFixed(1));
      }
      if (jiaozhumian === "底面") {
        return parseFloat(bottomValue.toFixed(1));
      }
      if (jiaozhumian === "侧面") {
        return 0;
      }
      if (jiaozhumian === "") {
        return 0;
      }
    }
    //回弹换算
    function tanhuachaxun(num, tan) {
      num = parseFloat(num);
      tan = parseFloat(tan);
      const tanhua = [0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0];
      const col1 = tanhua.indexOf(tan);
      const huitan = [20.0, 20.1, 20.2, 20.3, 20.4, 20.5, 20.6, 20.7, 20.8, 20.9, 21.0, 21.1, 21.2, 21.3, 21.4, 21.5, 21.6, 21.7, 21.8, 21.9, 22.0, 22.1, 22.2, 22.3, 22.4, 22.5, 22.6, 22.7, 22.8, 22.9, 23.0, 23.1, 23.2, 23.3, 23.4, 23.5, 23.6, 23.7, 23.8, 23.9, 24.0, 24.1, 24.2, 24.3, 24.4, 24.5, 24.6, 24.7, 24.8, 24.9, 25.0, 25.1, 25.2, 25.3, 25.4, 25.5, 25.6, 25.7, 25.8, 25.9, 26.0, 26.1, 26.2, 26.3, 26.4, 26.5, 26.6, 26.7, 26.8, 26.9, 27.0, 27.1, 27.2, 27.3, 27.4, 27.5, 27.6, 27.7, 27.8, 27.9, 28.0, 28.1, 28.2, 28.3, 28.4, 28.5, 28.6, 28.7, 28.8, 28.9, 29.0, 29.1, 29.2, 29.3, 29.4, 29.5, 29.6, 29.7, 29.8, 29.9, 30.0, 30.1, 30.2, 30.3, 30.4, 30.5, 30.6, 30.7, 30.8, 30.9, 31.0, 31.1, 31.2, 31.3, 31.4, 31.5, 31.6, 31.7, 31.8, 31.9, 32.0, 32.1, 32.2, 32.3, 32.4, 32.5, 32.6, 32.7, 32.8, 32.9, 33.0, 33.1, 33.2, 33.3, 33.4, 33.5, 33.6, 33.7, 33.8, 33.9, 34.0, 34.1, 34.2, 34.3, 34.4, 34.5, 34.6, 34.7, 34.8, 34.9, 35.0, 35.1, 35.2, 35.3, 35.4, 35.5, 35.6, 35.7, 35.8, 35.9, 36.0, 36.1, 36.2, 36.3, 36.4, 36.5, 36.6, 36.7, 36.8, 36.9, 37.0, 37.1, 37.2, 37.3, 37.4, 37.5, 37.6, 37.7, 37.8, 37.9, 38.0, 38.1, 38.2, 38.3, 38.4, 38.5, 38.6, 38.7, 38.8, 38.9, 39.0, 39.1, 39.2, 39.3, 39.4, 39.5, 39.6, 39.7, 39.8, 39.9, 40.0, 40.1, 40.2, 40.3, 40.4, 40.5, 40.6, 40.7, 40.8, 40.9, 41.0, 41.1, 41.2, 41.3, 41.4, 41.5, 41.6, 41.7, 41.8, 41.9, 42.0, 42.1, 42.2, 42.3, 42.4, 42.5, 42.6, 42.7, 42.8, 42.9, 43.0, 43.1, 43.2, 43.3, 43.4, 43.5, 43.6, 43.7, 43.8, 43.9, 44.0, 44.1, 44.2, 44.3, 44.4, 44.5, 44.6, 44.7, 44.8, 44.9, 45.0, 45.1, 45.2, 45.3, 45.4, 45.5, 45.6, 45.7, 45.8, 45.9, 46.0, 46.1, 46.2, 46.3, 46.4, 46.5, 46.6, 46.7, 46.8, 46.9, 47.0, 47.1, 47.2, 47.3, 47.4, 47.5, 47.6, 47.7, 47.8, 47.9, 48.0, 48.1, 48.2, 48.3, 48.4, 48.5, 48.6, 48.7, 48.8, 48.9, 49.0, 49.1, 49.2, 49.3, 49.4, 49.5, 49.6, 49.7, 49.8, 49.9, 50.0, 50.1, 50.2, 50.3, 50.4, 50.5, 50.6, 50.7, 50.8, 50.9, 51.0, 51.1, 51.2, 51.3, 51.4, 51.5, 51.6, 51.7, 51.8, 51.9, 52.0, 52.1, 52.2, 52.3, 52.4, 52.5, 52.6, 52.7, 52.8, 52.9, 53.0, 53.1, 53.2, 53.3, 53.4, 53.5, 53.6, 53.7, 53.8, 53.9, 54.0, 54.1, 54.2, 54.3, 54.4, 54.5, 54.6, 54.7, 54.8, 54.9, 55.0, 55.1, 55.2, 55.3, 55.4, 55.5, 55.6, 55.7, 55.8, 55.9, 56.0, 56.1, 56.2, 56.3, 56.4, 56.5, 56.6, 56.7, 56.8, 56.9, 57.0, 57.1, 57.2, 57.3, 57.4, 57.5, 57.6, 57.7, 57.8, 57.9, 58.0, 58.1, 58.2, 58.3, 58.4, 58.5, 58.6, 58.7, 58.8, 58.9, 59.0, 59.1, 59.2, 59.3, 59.4, 59.5, 59.6, 59.7, 59.8, 59.0, 60.0];
      const row1 = huitan.indexOf(num);
      const huansuanbiao = [
        [10.3, 10.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [10.4, 10.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [10.5, 10.3, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [10.6, 10.4, 10.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [10.7, 10.5, 10.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [10.8, 10.6, 10.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [11, 10.8, 10.4, 10.1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.1, 10.9, 10.5, 10.2, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.2, 11, 10.6, 10.3, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.3, 11.1, 10.7, 10.4, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.4, 11.2, 10.8, 10.5, 10, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.5, 11.3, 10.9, 10.6, 10.1, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.6, 11.4, 11, 10.7, 10.2, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.7, 11.5, 11.1, 10.8, 10.3, 0, 0, 0, 0, 0, 0, 0, 0],
        [11.8, 11.6, 11.2, 10.9, 10.4, 10, 0, 0, 0, 0, 0, 0, 0],
        [11.9, 11.7, 11.3, 11.0, 10.5, 10.1, 0, 0, 0, 0, 0, 0, 0],
        [12, 11.8, 11.4, 11, 10.6, 10.2, 0, 0, 0, 0, 0, 0, 0],
        [12.2, 12.0, 11.6, 11.2, 10.7, 10.4, 0, 0, 0, 0, 0, 0, 0],
        [12.3, 12.1, 11.7, 11.3, 10.8, 10.5, 10.1, 0, 0, 0, 0, 0, 0],
        [12.4, 12.2, 11.8, 11.5, 10.9, 10.6, 10.2, 0, 0, 0, 0, 0, 0],
        [12.5, 12.2, 11.9, 11.5, 11, 10.6, 10.2, 0, 0, 0, 0, 0, 0],
        [12.6, 12.3, 12, 11.6, 11.1, 10.7, 10.3, 0, 0, 0, 0, 0, 0],
        [12.7, 12.4, 12.1, 11.7, 11.2, 10.8, 10.4, 10, 0, 0, 0, 0, 0],
        [12.8, 12.6, 12.2, 11.9, 11.3, 10.9, 10.6, 10.2, 0, 0, 0, 0, 0],
        [13, 12.7, 12.4, 12, 11.4, 11, 10.7, 10.3, 10, 0, 0, 0, 0],
        [13.1, 12.8, 12.4, 12.1, 11.5, 11.1, 10.8, 10.4, 10.1, 0, 0, 0, 0],
        [13.2, 12.9, 12.5, 12.1, 11.6, 11.2, 10.8, 10.4, 10.2, 0, 0, 0, 0],
        [13.3, 13, 12.6, 12.2, 11.7, 11.3, 10.9, 10.5, 10.2, 0, 0, 0, 0],
        [13.4, 13.1, 12.7, 12.3, 11.8, 11.4, 11, 10.6, 10.3, 0, 0, 0, 0],
        [13.6, 13.2, 12.8, 12.5, 12.0, 11.5, 11.1, 10.7, 10.4, 0, 0, 0, 0],
        [13.7, 13.4, 13, 12.6, 12.1, 11.6, 11.2, 10.8, 10.5, 10.1, 0, 0, 0],
        [13.8, 13.5, 13.1, 12.7, 12.2, 11.7, 11.3, 10.9, 10.6, 10.2, 0, 0, 0],
        [13.9, 13.6, 13.2, 12.8, 12.2, 11.8, 11.4, 11, 10.7, 10.3, 10, 0, 0],
        [14, 13.7, 13.3, 12.9, 12.3, 11.9, 11.5, 11.1, 10.8, 10.4, 10.1, 0, 0],
        [14.1, 13.8, 13.4, 13, 12.4, 12, 11.6, 11.2, 10.9, 10.4, 10.2, 0, 0],
        [14.2, 14.0, 13.6, 13.1, 12.6, 12.1, 11.7, 11.3, 11, 10.6, 10.3, 0, 0],
        [14.4, 14.1, 13.7, 13.2, 12.7, 12.2, 11.8, 11.4, 11.1, 10.7, 10.4, 10.1, 0],
        [14.5, 14.2, 13.8, 13.3, 12.8, 12.3, 11.9, 11.4, 11.2, 10.8, 10.4, 10.2, 0],
        [14.6, 14.3, 13.9, 13.4, 12.8, 12.4, 12, 11.5, 11.2, 10.8, 10.5, 10.2, 0],
        [14.8, 14.4, 14, 13.5, 13.0, 12.6, 12.1, 11.6, 11.4, 10.9, 10.6, 10.3, 0],
        [14.9, 14.6, 14.2, 13.7, 13.1, 12.7, 12.2, 11.8, 11.5, 11, 10.7, 10.4, 10.1],
        [15, 14.7, 14.2, 13.8, 13.2, 12.8, 12.3, 11.8, 11.6, 11.1, 10.8, 10.5, 10.2],
        [15.1, 14.8, 14.3, 13.9, 13.3, 12.8, 12.4, 11.9, 11.6, 11.2, 10.9, 10.6, 10.3],
        [15.2, 15.0, 14.4, 14.1, 13.4, 13.0, 12.5, 12, 11.8, 11.3, 11, 10.7, 10.4],
        [15.4, 15.1, 14.6, 14.2, 13.6, 13.1, 12.6, 12.2, 11.9, 11.4, 11.1, 10.8, 10.4],
        [15.5, 15.2, 14.7, 14.3, 13.6, 13.2, 12.7, 12.2, 12.0, 11.4, 11.2, 10.8, 10.5],
        [15.6, 15.3, 14.8, 14.4, 13.7, 13.3, 12.8, 12.3, 12, 11.5, 11.2, 10.9, 10.6],
        [15.8, 15.4, 15, 14.5, 13.8, 13.4, 12.9, 12.4, 12.1, 11.6, 11.3, 11, 10.6],
        [15.9, 15.6, 15.1, 14.6, 14, 13.5, 13, 12.6, 12.2, 11.8, 11.4, 11.1, 10.7],
        [16, 15.8, 15.2, 14.8, 14.2, 13.6, 13.2, 12.7, 12.4, 11.9, 11.6, 11.2, 10.8],
        [16.2, 15.9, 15.4, 14.9, 14.3, 13.8, 13.3, 12.8, 12.5, 12, 11.7, 11.3, 10.9],
        [16.3, 16, 15.5, 15, 14.4, 13.8, 13.4, 12.9, 12.6, 12, 11.8, 11.4, 11.0],
        [16.4, 16.1, 15.6, 15.1, 14.4, 13.9, 13.4, 13, 12.6, 12.1, 11.8, 11.5, 11],
        [16.6, 16.2, 15.8, 15.3, 14.6, 14, 13.6, 13.1, 12.8, 12.2, 11.9, 11.6, 11.1],
        [16.7, 16.4, 15.9, 15.4, 14.7, 14.2, 13.7, 13.2, 12.9, 12.4, 12, 11.7, 11.2],
        [16.8, 16.5, 16, 15.6, 14.8, 14.3, 13.8, 13.3, 13, 12.4, 12.1, 11.8, 11.2],
        [16.9, 16.6, 16.1, 15.7, 14.9, 14.4, 13.9, 13.4, 13, 12.5, 12.2, 11.8, 11.3],
        [17, 16.8, 16.2, 15.7, 15, 14.5, 14, 13.5, 13.1, 12.6, 12.3, 11.9, 11.4],
        [17.2, 16.9, 16.3, 15.8, 15.1, 14.6, 14.1, 13.6, 13.2, 12.7, 12.4, 12, 11.5],
        [17.4, 17, 16.4, 16, 15.2, 14.8, 14.2, 13.7, 13.3, 12.8, 12.5, 12.1, 11.6],
        [17.5, 17.2, 16.6, 16.1, 15.4, 14.9, 14.4, 13.8, 13.5, 13, 12.6, 12.2, 11.6],
        [17.6, 17.3, 16.8, 16.3, 15.6, 15, 14.5, 13.9, 13.6, 13.1, 12.7, 12.3, 11.7],
        [17.8, 17.4, 16.9, 16.4, 15.7, 15.1, 14.6, 14, 13.7, 13.2, 12.8, 12.4, 11.8],
        [17.9, 17.5, 17, 16.5, 15.8, 15.2, 14.7, 14.1, 13.7, 13.2, 12.9, 12.5, 11.9],
        [18, 17.6, 17.1, 16.6, 15.8, 15.3, 14.8, 14.2, 13.9, 13.3, 13, 12.6, 12],
        [18.2, 17.8, 17.2, 16.7, 16.0, 15.4, 14.9, 14.3, 13.9, 13.4, 13.1, 12.7, 12],
        [18.3, 17.9, 17.4, 16.8, 16.1, 15.6, 15, 14.4, 14.1, 13.5, 13.2, 12.8, 12.1],
        [18.4, 18, 17.6, 17, 16.2, 15.7, 15.2, 14.5, 14.1, 13.6, 13.3, 12.8, 12.2],
        [18.6, 18.2, 17.7, 17.1, 16.4, 15.8, 15.3, 14.6, 14.3, 13.8, 13.4, 12.9, 12.3],
        [18.8, 18.4, 17.8, 17.3, 16.5, 16.0, 15.4, 14.7, 14.3, 13.9, 13.5, 13, 12.4],
        [18.9, 18.5, 18, 17.4, 16.6, 16.1, 15.5, 14.8, 14.6, 14, 13.6, 13.1, 12.4],
        [19, 18.6, 18, 17.5, 16.7, 16.2, 15.6, 14.9, 14.5, 14, 13.7, 13.2, 12.5],
        [19.1, 18.7, 18.1, 17.6, 16.8, 16.2, 15.7, 15, 14.7, 14.1, 13.8, 13.3, 12.6],
        [19.2, 18.8, 18.2, 17.7, 16.9, 16.3, 15.8, 15.1, 14.7, 14.2, 13.9, 13.4, 12.6],
        [19.4, 19, 18.4, 17.8, 17, 16.4, 15.9, 15.2, 14.9, 14.3, 14, 13.4, 12.7],
        [19.6, 19.2, 18.6, 17.9, 17.1, 16.5, 16, 15.3, 14.9, 14.4, 14, 13.5, 12.8],
        [19.7, 19.3, 18.7, 18, 17.2, 16.6, 16.1, 15.4, 15.1, 14.5, 14.1, 13.6, 12.9],
        [19.8, 19.4, 18.8, 18.1, 17.3, 16.7, 16.2, 15.5, 15.1, 14.6, 14.2, 13.6, 13.0],
        [20, 19.6, 19, 18.2, 17.4, 16.8, 16.3, 15.6, 15.3, 14.7, 14.2, 13.7, 13],
        [20.2, 19.6, 19.1, 18.3, 17.5, 16.9, 16.4, 15.7, 15.3, 14.8, 14.3, 13.8, 13.1],
        [20.3, 19.7, 19.2, 18.4, 17.6, 17, 16.5, 15.8, 15.4, 14.8, 14.4, 13.9, 13.2],
        [20.4, 19.8, 19.4, 18.5, 17.7, 17.1, 16.6, 15.9, 15.5, 14.9, 14.5, 14.0, 13.2],
        [20.6, 20, 19.5, 18.6, 17.8, 17.2, 16.7, 16, 15.6, 15, 14.6, 14, 13.3],
        [20.8, 20.2, 19.6, 18.7, 17.9, 17.3, 16.8, 16.1, 15.7, 15.1, 14.7, 14.1, 13.4],
        [20.9, 20.3, 19.7, 18.8, 18, 17.4, 16.9, 16.2, 15.8, 15.2, 14.8, 14.2, 13.5],
        [21, 20.4, 19.8, 19, 18.1, 17.5, 17, 16.3, 15.9, 15.3, 14.9, 14.2, 13.6],
        [21.2, 20.6, 20, 19.1, 18.2, 17.6, 17.1, 16.4, 16, 15.4, 15, 14.3, 13.6],
        [21.4, 20.8, 20.1, 19.3, 18.4, 17.7, 17.2, 16.5, 16.1, 15.5, 15.1, 14.4, 13.7],
        [21.5, 20.9, 20.2, 19.4, 18.5, 17.8, 17.3, 16.6, 16.2, 15.6, 15.2, 14.5, 13.8],
        [21.6, 21, 20.4, 19.5, 18.6, 17.95, 17.4, 16.7, 16.3, 15.7, 15.3, 14.6, 13.8],
        [21.8, 21.1, 20.5, 19.6, 18.7, 18.1, 17.5, 16.8, 16.4, 15.8, 15.4, 14.6, 13.9],
        [22.0, 21.2, 20.6, 19.7, 18.8, 18.2, 17.6, 16.9, 16.5, 15.9, 15.5, 14.7, 14],
        [22.1, 21.4, 20.8, 19.9, 19, 18.3, 17.7, 17, 16.6, 16, 15.6, 14.8, 14.1],
        [22.2, 21.6, 21.0, 20.1, 19.2, 18.4, 17.8, 17.1, 16.7, 16.1, 15.7, 14.9, 14.2],
        [22.4, 21.7, 21.1, 20.2, 19.3, 18.6, 17.9, 17.2, 16.8, 16.2, 15.8, 15, 14.2],
        [22.6, 21.8, 21.2, 20.3, 19.4, 18.7, 18, 17.4, 16.9, 16.3, 15.9, 15, 14.3],
        [22.7, 22, 21.3, 20.4, 19.5, 18.8, 18.2, 17.5, 17, 16.4, 16, 15.1, 14.4],
        [22.8, 22.2, 21.4, 20.6, 19.6, 19.0, 18.3, 17.6, 17.1, 16.5, 16.1, 15.2, 14.4],
        [23, 22.3, 21.6, 20.7, 19.8, 19.1, 18.4, 17.7, 17.2, 16.6, 16.2, 15.3, 14.5],
        [23.2, 22.4, 21.8, 20.8, 19.9, 19.2, 18.5, 17.8, 17.3, 16.7, 16.3, 15.4, 14.6],
        [23.3, 22.6, 21.9, 21, 20, 19.3, 18.6, 17.9, 17.4, 16.8, 16.4, 15.4, 14.7],
        [23.4, 22.8, 22, 21.1, 20.2, 19.4, 18.8, 18, 17.5, 16.9, 16.5, 15.5, 14.8],
        [23.6, 22.9, 22.2, 21.2, 20.3, 19.6, 18.9, 18.2, 17.6, 17, 16.6, 15.6, 14.9],
        [23.8, 23, 22.4, 21.4, 20.4, 19.7, 19, 18.3, 17.7, 17.1, 16.7, 15.7, 15],
        [23.9, 23.2, 22.5, 21.5, 20.6, 19.8, 19.1, 18.4, 17.8, 17.2, 16.8, 15.8, 15.1],
        [24.1, 23.4, 22.6, 21.8, 20.8, 20, 19.2, 18.6, 17.9, 17.4, 16.9, 15.9, 15.2],
        [24.3, 23.6, 22.8, 21.9, 20.9, 20.2, 19.4, 18.7, 18, 17.5, 17, 16, 15.2],
        [24.4, 23.8, 23.0, 22, 21, 20.3, 19.6, 18.8, 18.1, 17.6, 17.1, 16.1, 15.3],
        [24.6, 23.9, 23.1, 22.1, 21.2, 20.4, 19.7, 18.9, 18.2, 17.7, 17.2, 16.2, 15.4],
        [24.8, 24, 23.2, 22.3, 21.3, 20.6, 19.8, 19, 18.3, 17.8, 17.3, 16.3, 15.4],
        [24.9, 24.2, 23.4, 22.4, 21.4, 20.7, 19.9, 19.2, 18.4, 17.9, 17.4, 16.4, 15.5],
        [25, 24.3, 23.6, 22.6, 21.6, 20.8, 20, 19.3, 18.5, 18, 17.5, 16.5, 15.6],
        [25.2, 24.4, 23.7, 22.7, 21.7, 20.9, 20.2, 19.4, 18.6, 18.1, 17.6, 16.6, 15.7],
        [25.4, 24.6, 23.9, 22.9, 21.8, 21, 20.4, 19.6, 18.8, 18.2, 17.7, 16.8, 15.8],
        [25.6, 24.8, 24.1, 23, 22, 21.2, 20.5, 19.7, 18.9, 18.4, 17.8, 16.9, 15.8],
        [25.8, 25.0, 24.2, 23.2, 22.2, 21.4, 20.6, 19.8, 19, 18.5, 17.9, 17, 15.9],
        [25.9, 25.1, 24.3, 23.3, 22.3, 21.5, 20.7, 19.9, 19.2, 18.6, 18, 17.1, 16],
        [26, 25.2, 24.4, 23.5, 22.4, 21.6, 20.8, 20, 19.3, 18.8, 18.1, 17.2, 16.1],
        [26.2, 25.4, 24.6, 23.6, 22.5, 21.7, 21, 20.2, 19.4, 18.9, 18.2, 17.3, 16.2],
        [26.4, 25.6, 24.8, 23.8, 22.6, 21.8, 21.1, 20.3, 19.5, 19, 18.3, 17.4, 16.3],
        [26.5, 25.7, 24.9, 23.9, 22.8, 22, 21.2, 20.4, 19.6, 19.1, 18.4, 17.5, 16.4],
        [26.7, 25.9, 25.1, 24.1, 23.0, 22.2, 21.4, 20.6, 19.8, 19.2, 18.5, 17.6, 16.5],
        [26.9, 26.1, 25.3, 24.2, 23.1, 22.3, 21.5, 20.7, 19.9, 19.4, 18.6, 17.7, 16.6],
        [27, 26.2, 25.4, 24.4, 23.2, 22.4, 21.6, 20.8, 20, 19.5, 18.7, 17.8, 16.7],
        [27.2, 26.4, 25.6, 24.5, 23.4, 22.6, 21.8, 20.9, 20.1, 19.6, 18.8, 17.9, 16.8],
        [27.4, 26.6, 25.8, 24.7, 23.6, 22.8, 22.0, 21.1, 20.2, 19.8, 18.9, 18, 16.9],
        [27.6, 26.8, 25.9, 24.8, 23.7, 22.9, 22.1, 21.3, 20.4, 19.9, 19, 18.1, 17],
        [27.8, 27.0, 26, 25, 23.8, 23, 22.2, 21.4, 20.5, 20, 19.1, 18.2, 17.1],
        [27.9, 27.1, 26.2, 25.1, 24, 23.2, 22.3, 21.5, 20.6, 20.1, 19.2, 18.3, 17.2],
        [28, 27.2, 26.4, 25.3, 24.2, 23.3, 22.4, 21.6, 20.8, 20.2, 19.3, 18.4, 17.3],
        [28.2, 27.4, 26.5, 25.4, 24.3, 23.4, 22.6, 21.7, 20.9, 20.3, 19.4, 18.5, 17.4],
        [28.4, 27.6, 26.6, 25.6, 24.4, 23.6, 22.8, 21.8, 21.05, 20.4, 19.5, 18.6, 17.5],
        [28.6, 27.7, 26.8, 25.7, 24.6, 23.7, 22.9, 22, 21.2, 20.5, 19.6, 18.7, 17.6],
        [28.8, 27.8, 27.0, 25.9, 24.8, 23.8, 23, 22.2, 21.3, 20.6, 19.7, 18.8, 17.7],
        [28.9, 28, 27.1, 26, 24.9, 24, 23.1, 22.3, 21.4, 20.7, 19.8, 18.9, 17.8],
        [29.1, 28.2, 27.2, 26.3, 25, 24.1, 23.2, 22.4, 21.6, 20.8, 19.9, 19, 17.9],
        [29.3, 28.4, 27.4, 26.4, 25.2, 24.2, 23.3, 22.6, 21.7, 20.9, 20, 19.1, 18],
        [29.4, 28.6, 27.6, 26.5, 25.3, 24.3, 23.4, 22.7, 21.8, 21, 20.1, 19.2, 18.1],
        [29.6, 28.7, 27.7, 26.6, 25.4, 24.4, 23.5, 22.8, 21.9, 21.1, 20.2, 19.3, 18.2],
        [29.8, 28.9, 27.8, 26.7, 25.5, 24.5, 23.6, 22.9, 22, 21.2, 20.3, 19.4, 18.2],
        [30, 29.1, 28, 26.8, 25.6, 24.6, 23.7, 23, 22.1, 21.3, 20.4, 19.5, 18.3],
        [30.2, 29.2, 28.2, 26.9, 25.7, 24.7, 23.8, 23.1, 22.2, 21.4, 20.5, 19.6, 18.4],
        [30.3, 29.4, 28.3, 27, 25.8, 24.8, 23.9, 23.2, 22.3, 21.5, 20.6, 19.7, 18.4],
        [30.5, 29.6, 28.4, 27.1, 25.9, 24.9, 24, 23.3, 22.4, 21.6, 20.7, 19.8, 18.5],
        [30.7, 29.8, 28.6, 27.2, 26, 25, 24.1, 23.4, 22.5, 21.7, 20.8, 19.8, 18.6],
        [30.9, 30, 28.8, 27.3, 26.1, 25.1, 24.2, 23.5, 22.6, 21.8, 20.9, 19.9, 18.7],
        [31.1, 30.2, 28.9, 27.4, 26.2, 25.2, 24.3, 23.6, 22.7, 21.9, 21, 20, 18.8],
        [31.2, 30.4, 29, 27.5, 26.3, 25.3, 24.4, 23.7, 22.8, 22, 21.1, 20.1, 18.9],
        [31.4, 30.5, 29.2, 27.6, 26.4, 25.4, 24.5, 23.8, 22.9, 22.1, 21.2, 20.2, 19],
        [31.6, 30.6, 29.4, 27.9, 26.6, 25.6, 24.6, 23.9, 23, 22.2, 21.3, 20.3, 19.1],
        [31.8, 30.8, 29.6, 28, 26.7, 25.8, 24.8, 24, 23.2, 22.3, 21.4, 20.4, 19.2],
        [32.0, 31.0, 29.8, 28.1, 26.8, 25.9, 24.9, 24.1, 23.3, 22.4, 21.5, 20.5, 19.3],
        [32.1, 31.1, 29.9, 28.2, 27, 26, 25, 24.2, 23.4, 22.5, 21.6, 20.6, 19.4],
        [32.3, 31.3, 30, 28.5, 27.2, 26.2, 25.2, 24.3, 23.6, 22.6, 21.7, 20.7, 19.5],
        [32.5, 31.5, 30.2, 28.6, 27.3, 26.3, 25.4, 24.4, 23.7, 22.8, 21.8, 20.8, 19.6],
        [32.7, 31.7, 30.4, 28.9, 27.4, 26.4, 25.6, 24.6, 23.8, 22.9, 21.9, 20.9, 19.7],
        [32.9, 31.9, 30.6, 29, 27.6, 26.6, 25.7, 24.7, 24, 23, 22, 21, 19.8],
        [33.1, 32.1, 30.8, 29.2, 27.8, 26.8, 25.8, 24.8, 24.2, 23.2, 22.1, 21.1, 19.9],
        [33.3, 32.3, 31, 29.3, 28, 27, 26, 25, 24.3, 23.3, 22.2, 21.2, 20],
        [33.4, 32.4, 31.1, 29.5, 28.1, 27.1, 26.1, 25.1, 24.4, 23.4, 22.3, 21.3, 20.1],
        [33.6, 32.6, 31.2, 29.6, 28.2, 27.2, 26.2, 25.2, 24.5, 23.5, 22.4, 21.4, 20.2],
        [33.8, 32.8, 31.4, 29.8, 28.4, 27.4, 26.4, 25.4, 24.6, 23.6, 22.5, 21.5, 20.3],
        [34, 33, 31.6, 29.9, 28.6, 27.5, 26.5, 25.5, 24.8, 23.8, 22.6, 21.6, 20.4],
        [34.2, 33.2, 31.8, 30.2, 28.8, 27.7, 26.6, 25.6, 25.0, 24.0, 22.7, 21.7, 20.5],
        [34.4, 33.4, 32, 30.3, 28.9, 27.9, 26.8, 25.8, 25.1, 24.1, 22.8, 21.8, 20.6],
        [34.6, 33.6, 32.2, 30.5, 29, 28, 27.0, 26.0, 25.2, 24.2, 22.9, 21.9, 20.8],
        [34.8, 33.8, 32.4, 30.6, 29.2, 28.2, 27.1, 26.1, 25.4, 24.4, 23, 22, 20.9],
        [35, 34.0, 32.6, 30.8, 29.4, 28.4, 27.3, 26.2, 25.6, 24.5, 23.1, 22.1, 21],
        [35.2, 34.1, 32.7, 31, 29.6, 28.5, 27.5, 26.4, 25.7, 24.6, 23.2, 22.2, 21.1],
        [35.4, 34.2, 32.8, 31.1, 29.7, 28.6, 27.6, 26.5, 25.8, 24.7, 23.3, 22.3, 21.2],
        [35.5, 34.4, 33, 31.2, 29.8, 28.8, 27.7, 26.6, 25.9, 24.8, 23.4, 22.4, 21.3],
        [35.7, 34.6, 33.2, 31.4, 30, 29.0, 27.8, 26.8, 26, 25.0, 23.6, 22.5, 21.4],
        [35.9, 34.8, 33.4, 31.6, 30.2, 29.1, 28, 26.9, 26.2, 25.1, 23.7, 22.6, 21.5],
        [36.1, 35, 33.6, 31.8, 30.4, 29.2, 28.2, 27, 26.4, 25.2, 23.8, 22.8, 21.6],
        [36.3, 35.2, 33.8, 31.9, 30.5, 29.4, 28.3, 27.2, 26.5, 25.4, 24, 22.9, 21.8],
        [36.5, 35.4, 34.0, 32.1, 30.6, 29.6, 28.4, 27.4, 26.6, 25.6, 24.1, 23, 21.9],
        [36.7, 35.6, 34.1, 32.3, 30.8, 29.7, 28.6, 27.5, 26.8, 25.7, 24.2, 23.1, 22],
        [36.9, 35.8, 34.3, 32.4, 31, 29.8, 28.8, 27.6, 27.0, 25.8, 24.4, 23.2, 22.2],
        [37.1, 36, 34.5, 32.6, 31.2, 30, 28.9, 27.8, 27.1, 26, 24.5, 23.4, 22.3],
        [37.3, 36.2, 34.7, 32.8, 31.4, 30.2, 29, 27.95, 27.2, 26.1, 24.6, 23.5, 22.4],
        [37.5, 36.4, 34.9, 33, 31.5, 30.3, 29.2, 28.1, 27.4, 26.2, 24.8, 23.6, 22.5],
        [37.7, 36.6, 35, 33.2, 31.6, 30.4, 29.4, 28.2, 27.6, 26.4, 24.9, 23.8, 22.6],
        [37.9, 36.8, 35.2, 33.4, 31.8, 30.6, 29.5, 28.4, 27.7, 26.5, 25, 23.9, 22.7],
        [38.1, 37, 35.4, 33.6, 32.0, 30.8, 29.6, 28.6, 27.8, 26.6, 25.2, 24, 22.8],
        [38.3, 37.2, 35.6, 33.7, 32.1, 30.9, 29.8, 28.7, 28, 26.8, 25.3, 24.1, 23],
        [38.5, 37.4, 35.8, 33.9, 32.2, 31, 29.95, 28.8, 28.2, 26.9, 25.4, 24.2, 23.1],
        [38.7, 37.5, 36, 34.1, 32.4, 31.2, 30.1, 29, 28.3, 27, 25.5, 24.4, 23.2],
        [38.9, 37.7, 36.2, 34.25, 32.6, 31.4, 30.2, 29.2, 28.4, 27.1, 25.6, 24.5, 23.4],
        [39.1, 37.9, 36.4, 34.4, 32.7, 31.5, 30.4, 29.3, 28.5, 27.2, 25.8, 24.6, 23.5],
        [39.3, 38, 36.6, 34.6, 32.8, 31.6, 30.5, 29.4, 28.6, 27.3, 25.9, 24.7, 23.6],
        [39.5, 38.2, 36.7, 34.7, 33, 31.8, 30.6, 29.6, 28.8, 27.4, 26, 24.8, 23.7],
        [39.7, 38.4, 36.8, 34.85, 33.2, 32.0, 30.7, 29.7, 28.9, 27.5, 26.1, 24.9, 23.8],
        [39.9, 38.5, 37, 35, 33.3, 32.1, 30.8, 29.8, 29, 27.6, 26.2, 25, 24],
        [40.1, 38.6, 37.2, 35.2, 33.4, 32.2, 30.9, 29.9, 29.1, 27.7, 26.3, 25.1, 24.1],
        [40.3, 38.8, 37.3, 35.3, 33.6, 32.4, 31, 30, 29.2, 27.8, 26.4, 25.2, 24.2],
        [40.5, 39.0, 37.4, 35.4, 33.8, 32.6, 31.1, 30.1, 29.3, 27.9, 26.5, 25.3, 24.3],
        [40.7, 39.1, 37.6, 35.6, 33.9, 32.7, 31.2, 30.2, 29.4, 28, 26.6, 25.4, 24.4],
        [41.0, 39.4, 37.8, 35.8, 34, 32.8, 31.3, 30.4, 29.6, 28.1, 26.7, 25.5, 24.6],
        [41.2, 39.6, 38, 35.9, 34.2, 33, 31.4, 30.5, 29.7, 28.2, 26.8, 25.6, 24.7],
        [41.4, 39.8, 38.2, 36.05, 34.4, 33.2, 31.6, 30.6, 29.8, 28.3, 26.9, 25.7, 24.8],
        [41.6, 39.9, 38.3, 36.2, 34.5, 33.3, 31.7, 30.8, 30, 28.4, 27, 25.8, 25],
        [41.8, 40.1, 38.4, 36.4, 34.6, 33.4, 31.8, 31.0, 30.1, 28.5, 27.2, 25.9, 25.1],
        [42, 40.3, 38.6, 36.5, 34.8, 33.6, 32, 31.1, 30.2, 28.6, 27.3, 26, 25.2],
        [42.2, 40.5, 38.8, 36.7, 35.0, 33.8, 32.2, 31.2, 30.4, 28.7, 27.4, 26.1, 25.3],
        [42.4, 40.7, 39, 36.9, 35.1, 33.9, 32.3, 31.4, 30.5, 28.8, 27.6, 26.2, 25.4],
        [42.6, 40.9, 39.2, 37.05, 35.2, 34, 32.4, 31.6, 30.6, 29.0, 27.7, 26.4, 25.6],
        [42.8, 41.1, 39.4, 37.2, 35.4, 34.2, 32.6, 31.7, 30.8, 29.1, 27.8, 26.5, 25.7],
        [43.1, 41.4, 39.6, 37.4, 35.6, 34.4, 32.8, 31.8, 31, 29.2, 27.95, 26.6, 25.8],
        [43.3, 41.6, 39.8, 37.7, 35.7, 34.5, 32.9, 32, 31.2, 29.4, 28.1, 26.8, 26],
        [43.5, 41.8, 40, 37.85, 35.8, 34.6, 33, 32.2, 31.4, 29.6, 28.2, 27.0, 26.1],
        [43.7, 42, 40.2, 38, 36, 34.8, 33.2, 32.3, 31.5, 29.7, 28.4, 27.1, 26.2],
        [43.9, 42.2, 40.4, 38.2, 36.2, 34.9, 33.4, 32.4, 31.6, 29.8, 28.6, 27.2, 26.4],
        [44.1, 42.3, 40.6, 38.4, 36.3, 35.1, 33.5, 32.6, 31.8, 30, 28.7, 27.3, 26.5],
        [44.3, 42.5, 40.8, 38.6, 36.4, 35.2, 33.6, 32.8, 31.9, 30.2, 28.8, 27.4, 26.6],
        [44.5, 42.7, 40.9, 38.7, 36.6, 35.4, 33.8, 32.9, 32, 30.3, 28.9, 27.6, 26.7],
        [44.8, 43.0, 41.2, 39.0, 36.8, 35.5, 34, 33.1, 32.2, 30.4, 29, 27.8, 26.8],
        [45, 43.2, 41.4, 39.2, 36.9, 35.7, 34.2, 33.3, 32.4, 30.6, 29.2, 27.9, 27],
        [45.2, 43.4, 41.6, 39.4, 37, 35.8, 34.4, 33.4, 32.6, 30.8, 29.4, 28, 27.1],
        [45.4, 43.6, 41.8, 39.5, 37.2, 36, 34.5, 33.6, 32.7, 30.9, 29.5, 28.1, 27.2],
        [45.6, 43.8, 42, 39.7, 37.4, 36.1, 34.7, 33.8, 32.8, 31, 29.6, 28.3, 27.4],
        [45.9, 44.1, 42.2, 39.9, 37.6, 36.3, 34.9, 34, 33, 31.2, 29.8, 28.5, 27.5],
        [46.1, 44.2, 42.4, 40.1, 37.8, 36.4, 35, 34.2, 33.2, 31.4, 29.95, 28.6, 27.6],
        [46.3, 44.4, 42.6, 40.3, 38, 36.6, 35.2, 34.3, 33.3, 31.5, 30.1, 28.7, 27.8],
        [46.5, 44.6, 42.8, 40.4, 38.2, 36.7, 35.4, 34.4, 33.4, 31.6, 30.2, 28.8, 27.9],
        [46.7, 44.8, 43, 40.6, 38.3, 36.9, 35.5, 34.6, 33.6, 31.8, 30.4, 29, 28],
        [47.0, 45, 43.2, 40.85, 38.5, 37.1, 35.7, 34.8, 33.8, 32.0, 30.6, 29.2, 28.2],
        [47.2, 45.3, 43.4, 41.1, 38.7, 37.3, 35.9, 34.9, 34, 32.1, 30.7, 29.3, 28.3],
        [47.4, 45.5, 43.6, 41.25, 38.8, 37.4, 36, 35, 34.2, 32.2, 30.8, 29.4, 28.4],
        [47.6, 45.7, 43.8, 41.4, 39, 37.6, 36.2, 35.2, 34.3, 32.4, 30.9, 29.5, 28.6],
        [47.8, 46.0, 44, 41.6, 39.2, 37.8, 36.4, 35.4, 34.4, 32.6, 31.1, 29.6, 28.8],
        [48.1, 46.2, 44.2, 41.8, 39.4, 38, 36.6, 35.6, 34.6, 32.7, 31.3, 29.8, 28.9],
        [48.3, 46.4, 44.4, 42, 39.6, 38.2, 36.8, 35.8, 34.8, 32.8, 31.4, 29.95, 29],
        [48.5, 46.6, 44.6, 42.2, 39.8, 38.3, 36.9, 35.9, 34.9, 33, 31.5, 30.1, 29.1],
        [48.8, 46.8, 44.8, 42.4, 40, 38.5, 37, 36.1, 35.1, 33.2, 31.6, 30.2, 29.2],
        [49, 47, 45.1, 42.6, 40.2, 38.7, 37.2, 36.3, 35.3, 33.3, 31.8, 30.4, 29.4],
        [49.2, 47.2, 45.2, 42.8, 40.4, 38.8, 37.4, 36.4, 35.4, 33.4, 32.0, 30.5, 29.5],
        [49.4, 47.4, 45.4, 43, 40.5, 39, 37.5, 36.6, 35.6, 33.6, 32.1, 30.6, 29.6],
        [49.6, 47.6, 45.6, 43.2, 40.7, 39.2, 37.7, 36.8, 35.8, 33.8, 32.2, 30.8, 29.8],
        [49.9, 47.9, 45.9, 43.4, 40.9, 39.4, 37.9, 36.9, 35.9, 33.9, 32.4, 30.9, 29.9],
        [50.2, 48.2, 46.2, 43.6, 41.1, 39.6, 38.1, 37.1, 36.1, 34.1, 32.6, 31, 30],
        [50.4, 48.4, 46.4, 43.8, 41.3, 39.8, 38.3, 37.3, 36.3, 34.3, 32.8, 31.2, 30.2],
        [50.6, 48.6, 46.6, 44, 41.5, 39.95, 38.4, 37.4, 36.4, 34.4, 32.9, 31.4, 30.4],
        [50.8, 48.8, 46.7, 44.2, 41.7, 40.1, 38.6, 37.6, 36.6, 34.5, 33, 31.5, 30.5],
        [51, 49, 47.0, 44.4, 41.9, 40.3, 38.8, 37.8, 36.8, 34.7, 33.2, 31.6, 30.6],
        [51.3, 49.2, 47.2, 44.6, 42.1, 40.5, 39, 38, 36.9, 34.9, 33.3, 31.8, 30.8],
        [51.5, 49.4, 47.4, 44.8, 42.2, 40.6, 39.2, 38.2, 37, 35, 33.4, 32.0, 30.9],
        [51.7, 49.6, 47.6, 45, 42.4, 40.8, 39.3, 38.3, 37.2, 35.2, 33.6, 32.1, 31],
        [52.0, 49.8, 47.8, 45.2, 42.6, 41, 39.5, 38.4, 37.4, 35.4, 33.8, 32.2, 31.2],
        [52.2, 50.1, 48, 45.4, 42.8, 41.2, 39.7, 38.6, 37.6, 35.5, 33.9, 32.4, 31.3],
        [52.4, 50.4, 48.2, 45.6, 43, 41.4, 39.9, 38.8, 37.8, 35.6, 34.1, 32.6, 31.4],
        [52.7, 50.6, 48.5, 45.8, 43.2, 41.6, 40.1, 39, 37.9, 35.8, 34.3, 32.7, 31.6],
        [53.0, 50.8, 48.7, 46.05, 43.4, 41.8, 40.2, 39.2, 38.1, 36, 34.4, 32.8, 31.8],
        [53.2, 51.1, 48.9, 46.3, 43.6, 42, 40.4, 39.4, 38.3, 36.2, 34.6, 33, 31.9],
        [53.4, 51.3, 49.2, 46.4, 43.8, 42.2, 40.6, 39.6, 38.4, 36.3, 34.7, 33.1, 32],
        [53.6, 51.5, 49.4, 46.6, 44, 42.3, 40.7, 39.7, 38.6, 36.4, 34.8, 33.2, 32.2],
        [53.8, 51.7, 49.6, 46.85, 44.2, 42.5, 40.9, 39.8, 38.8, 36.6, 35, 33.4, 32.4],
        [54.1, 51.9, 49.8, 47.1, 44.4, 42.7, 41.1, 40, 39, 36.8, 35.2, 33.5, 32.5],
        [54.4, 52.2, 50, 47.3, 44.6, 42.9, 41.3, 40.2, 39.2, 37.0, 35.4, 33.7, 32.6],
        [54.6, 52.4, 50.2, 47.5, 44.8, 43.1, 41.5, 40.4, 39.3, 37.1, 35.5, 33.9, 32.8],
        [54.8, 52.6, 50.4, 47.6, 45, 43.3, 41.7, 40.6, 39.5, 37.3, 35.6, 34, 33.0],
        [55, 52.8, 50.6, 47.6, 45.2, 43.5, 41.9, 40.8, 39.7, 37.5, 35.8, 34.2, 33.1],
        [55.2, 53, 50.8, 47.95, 45.4, 43.6, 42, 41.0, 39.8, 37.6, 36.0, 34.3, 33.2],
        [55.5, 53.3, 51.1, 48.3, 45.5, 43.8, 42.2, 41.1, 40, 37.7, 36.1, 34.4, 33.3],
        [55.8, 53.6, 51.3, 48.5, 45.7, 44, 42.4, 41.2, 40.2, 37.9, 36.2, 34.6, 33.4],
        [56, 53.8, 51.5, 48.7, 45.9, 44.2, 42.6, 41.4, 40.3, 38.1, 36.4, 34.7, 33.6],
        [56.2, 54, 51.8, 49.0, 46.1, 44.4, 42.8, 41.6, 40.5, 38.2, 36.6, 34.8, 33.8],
        [56.5, 54.2, 52, 49.2, 46.3, 44.6, 42.9, 41.8, 40.7, 38.4, 36.7, 35, 33.9],
        [56.8, 54.4, 52.2, 49.4, 46.5, 44.8, 43.1, 42, 40.8, 38.6, 36.8, 35.2, 34],
        [57, 54.7, 52.4, 49.6, 46.7, 45, 43.3, 42.2, 41, 38.8, 37, 35.3, 34.2],
        [57.2, 55.0, 52.6, 49.8, 47.0, 45.1, 43.5, 42.4, 41.2, 39.0, 37.2, 35.4, 34.4],
        [57.5, 55.2, 52.9, 50, 47.2, 45.2, 43.7, 42.6, 41.4, 39.1, 37.4, 35.6, 34.5],
        [57.8, 55.4, 53.2, 50.25, 47.4, 45.5, 43.9, 42.8, 41.6, 39.2, 37.6, 35.8, 34.6],
        [58, 55.7, 53.4, 50.5, 47.6, 45.8, 44.1, 42.9, 41.8, 39.4, 37.7, 36, 34.8],
        [58.2, 56.0, 53.6, 50.7, 47.8, 46, 44.3, 43.1, 42.0, 39.6, 37.8, 36.2, 35.0],
        [58.5, 56.2, 53.8, 50.9, 48, 46.2, 44.5, 43.3, 42.1, 39.8, 38, 36.3, 35.1],
        [58.8, 56.4, 54, 51.1, 48.2, 46.4, 44.6, 43.5, 42.3, 39.95, 38.2, 36.4, 35.2],
        [59, 56.6, 54.3, 51.3, 48.4, 46.6, 44.8, 43.7, 42.5, 40.1, 38.4, 36.6, 35.4],
        [59.2, 56.8, 54.5, 51.6, 48.6, 46.8, 45, 43.8, 42.6, 40.3, 38.6, 36.8, 35.6],
        [59.5, 57.1, 54.7, 51.8, 48.8, 47, 45.2, 44, 42.8, 40.5, 38.7, 36.9, 35.7],
        [59.8, 57.4, 55.0, 52, 49, 47.2, 45.4, 44.2, 43, 40.6, 38.8, 37, 35.8],
        [60, 57.6, 55.2, 52.2, 49.2, 47.4, 45.6, 44.4, 43.2, 40.8, 39, 37.2, 36],
        [60, 57.8, 55.4, 52.4, 49.4, 47.6, 45.8, 44.6, 43.4, 41.0, 39.2, 37.4, 36.2],
        [60, 58, 55.7, 52.6, 49.6, 47.8, 46, 44.8, 43.6, 41.1, 39.3, 37.5, 36.3],
        [60, 58.3, 55.9, 52.85, 49.8, 48, 46.2, 45.0, 43.8, 41.3, 39.4, 37.6, 36.4],
        [60, 58.6, 56.1, 53.1, 50, 48.2, 46.4, 45.1, 43.9, 41.5, 39.6, 37.8, 36.6],
        [60, 58.8, 56.4, 53.3, 50.2, 48.4, 46.6, 45.3, 44.1, 41.6, 39.8, 37.95, 36.8],
        [60, 59, 56.6, 53.5, 50.4, 48.6, 46.7, 45.5, 44.3, 41.8, 40, 38.1, 36.9],
        [60, 59.2, 56.8, 53.8, 50.6, 48.8, 46.9, 45.7, 44.4, 42, 40.2, 38.2, 37],
        [60, 59.5, 57.1, 54, 50.9, 49, 47.1, 45.9, 44.6, 42.2, 40.3, 38.4, 37.2],
        [60, 59.8, 57.3, 54.2, 51.1, 49.4, 47.3, 46, 44.8, 42.4, 40.4, 38.6, 37.4],
        [60, 60, 57.5, 54.4, 51.3, 49.9, 47.5, 46.2, 45, 42.5, 40.6, 38.8, 37.5],
        [60, 60, 57.8, 54.6, 51.5, 49.6, 47.7, 46.4, 45.2, 42.6, 40.8, 39.0, 37.6],
        [60, 60, 58, 54.8, 51.7, 49.8, 47.9, 46.6, 45.4, 42.8, 41, 39.1, 37.8],
        [60, 60, 58.2, 55.05, 51.9, 50, 48.1, 46.8, 45.6, 43, 41.2, 39.2, 38],
        [60, 60, 58.5, 55.3, 52.1, 50.2, 48.3, 47.1, 45.8, 43.2, 41.3, 39.4, 38.2],
        [60, 60, 58.7, 55.5, 52.3, 50.4, 48.5, 47.2, 46, 43.4, 41.5, 39.6, 38.4],
        [60, 60, 58.9, 55.7, 52.5, 50.6, 48.7, 47.4, 46.2, 43.6, 41.7, 39.7, 38.5],
        [60, 60, 59.2, 56.25, 52.8, 50.8, 48.9, 47.6, 46.4, 43.8, 41.8, 39.9, 38.6],
        [60, 60, 59.4, 56.8, 53, 51, 49.1, 47.8, 46.5, 43.9, 42, 40.1, 38.8],
        [60, 60, 59.6, 56.8, 53.2, 51.2, 49.3, 48, 46.7, 44.1, 42.2, 40.2, 39.0],
        [60, 60, 59.9, 56.7, 53.4, 51.4, 49.5, 48.2, 46.9, 44.3, 42.3, 40.4, 39.1],
        [60, 60, 59.9, 56.9, 53.6, 51.6, 49.7, 48.4, 47, 44.4, 42.4, 40.6, 39.2],
        [60, 60, 60, 57.1, 53.8, 51.9, 49.9, 48.5, 47.2, 44.6, 42.6, 40.7, 39.4],
        [60, 60, 60, 57.4, 54, 52.1, 50.1, 48.8, 47.4, 44.8, 42.8, 40.8, 39.6],
        [60, 60, 60, 57.6, 54.3, 52.3, 50.3, 49, 47.7, 45, 43, 41, 39.7],
        [60, 60, 60, 57.8, 54.5, 52.5, 50.5, 49.2, 47.8, 45.2, 43.2, 41.2, 39.8],
        [60, 60, 60, 58, 54.7, 52.7, 50.7, 49.4, 48, 45.4, 43.4, 41.4, 40],
        [60, 60, 60, 58.25, 54.9, 52.9, 50.9, 49.6, 48.2, 45.6, 43.6, 41.6, 40.2],
        [60, 60, 60, 58.5, 55.1, 53.1, 51.1, 49.8, 48.4, 45.7, 43.7, 41.7, 40.3],
        [60, 60, 60, 58.8, 55.4, 53.3, 51.3, 49.95, 48.6, 45.9, 43.9, 41.8, 40.5],
        [60, 60, 60, 59, 55.6, 53.5, 51.5, 50.1, 48.8, 46.1, 44.1, 42, 40.7],
        [60, 60, 60, 59.2, 55.8, 53.8, 51.7, 50.3, 49, 46.2, 44.2, 42.2, 40.8],
        [60, 60, 60, 59.4, 56, 54, 51.9, 50.5, 49.2, 46.4, 44.4, 42.3, 41],
        [60, 60, 60, 59.6, 56.2, 54.2, 52.1, 50.7, 49.4, 46.6, 44.6, 42.5, 41.2],
        [60, 60, 60, 59.9, 56.4, 54.4, 52.3, 50.9, 49.6, 46.8, 44.7, 42.7, 41.3],
        [60, 60, 60, 59.95, 56.6, 54.6, 52.5, 51.1, 49.8, 47, 44.9, 42.8, 41.4],
        [60, 60, 60, 60, 56.9, 54.8, 52.7, 51.3, 50, 47.2, 45.1, 43, 41.6],
        [60, 60, 60, 60, 57.1, 55, 52.9, 51.5, 50.2, 47.4, 45.2, 43.2, 41.7],
        [60, 60, 60, 60, 57.3, 55.2, 53.1, 51.7, 50.3, 47.5, 45.4, 43.3, 41.8],
        [60, 60, 60, 60, 57.6, 55.4, 53.4, 51.9, 50.5, 47.7, 45.6, 43.5, 42],
        [60, 60, 60, 60, 57.8, 55.7, 53.6, 52.1, 50.7, 47.9, 45.8, 43.7, 42.3],
        [60, 60, 60, 60, 58, 55.9, 53.8, 52.3, 50.9, 48.1, 46, 43.8, 42.4],
        [60, 60, 60, 60, 58.2, 56.1, 54, 52.5, 51.1, 48.3, 46.2, 44, 42.6],
        [60, 60, 60, 60, 58.4, 56.3, 54.2, 52.8, 51.3, 48.5, 46.4, 44.2, 42.8],
        [60, 60, 60, 60, 58.7, 56.5, 54.4, 53, 51.5, 48.7, 46.5, 44.4, 43],
        [60, 60, 60, 60, 58.9, 56.8, 54.6, 53.2, 51.7, 48.8, 46.7, 44.6, 43.2],
        [60, 60, 60, 60, 59.1, 57, 54.8, 53.4, 51.9, 49, 46.9, 44.7, 43.3],
        [60, 60, 60, 60, 59.4, 57.2, 55, 53.6, 52.1, 49.2, 47.1, 44.9, 43.4],
        [60, 60, 60, 60, 59.6, 57.4, 55.2, 53.8, 52.3, 49.4, 47.3, 45.1, 43.6],
        [60, 60, 60, 60, 59.8, 57.6, 55.4, 54, 52.5, 49.6, 47.4, 45.2, 43.8],
        [60, 60, 60, 60, 60, 57.8, 55.6, 54.2, 52.7, 49.8, 47.6, 45.4, 43.9],
        [60, 60, 60, 60, 60, 58, 55.8, 54.4, 52.9, 50, 47.8, 45.6, 44.1],
        [60, 60, 60, 60, 60, 58.3, 56.1, 54.6, 53.1, 50.2, 48, 45.8, 44.3],
        [60, 60, 60, 60, 60, 58.5, 56.3, 54.8, 53.3, 50.4, 48.2, 46.0, 44.4],
        [60, 60, 60, 60, 60, 58.7, 56.5, 55, 53.5, 50.5, 48.3, 46.1, 44.6],
        [60, 60, 60, 60, 60, 59.0, 56.7, 55.2, 53.7, 50.7, 48.5, 46.2, 44.8],
        [60, 60, 60, 60, 60, 59.2, 56.9, 55.4, 53.9, 50.9, 48.7, 46.4, 44.9],
        [60, 60, 60, 60, 60, 59.4, 57.1, 55.6, 54.1, 51.1, 48.8, 46.6, 45.1],
        [60, 60, 60, 60, 60, 59.6, 57.3, 55.8, 54.3, 51.3, 49, 46.8, 45.3],
        [60, 60, 60, 60, 60, 59.6, 57.6, 56, 54.5, 51.5, 49.2, 47.0, 45.4],
        [60, 60, 60, 60, 60, 59.6, 57.8, 56.3, 54.7, 51.7, 49.4, 47.1, 45.6],
        [60, 60, 60, 60, 60, 59.6, 58, 56.5, 54.9, 51.9, 49.6, 47.3, 45.8],
        [60, 60, 60, 60, 60, 59.6, 58.2, 56.7, 55.1, 52.1, 49.8, 47.5, 46],
        [60, 60, 60, 60, 60, 59.6, 58.4, 56.9, 55.4, 52.3, 50, 47.7, 46.2],
        [60, 60, 60, 60, 60, 59.6, 58.6, 57.1, 55.6, 52.5, 50.2, 47.9, 46.3],
        [60, 60, 60, 60, 60, 59.6, 58.8, 57.3, 55.8, 52.7, 50.4, 48, 46.4],
        [60, 60, 60, 60, 60, 59.6, 59.1, 57.5, 56, 52.9, 50.5, 48.2, 46.6],
        [60, 60, 60, 60, 60, 59.6, 59.3, 57.7, 56.2, 53, 50.7, 48.4, 46.8],
        [60, 60, 60, 60, 60, 59.6, 59.5, 57.9, 56.4, 53.2, 50.9, 48.5, 47],
        [60, 60, 60, 60, 60, 59.6, 59.7, 58.2, 56.6, 53.4, 51.1, 48.7, 47.2],
        [60, 60, 60, 60, 60, 59.6, 59.9, 58.4, 56.8, 53.6, 51.3, 48.9, 47.3],
        [60, 60, 60, 60, 60, 59.6, 59.9, 58.6, 57, 53.8, 51.4, 49.1, 47.5],
        [60, 60, 60, 60, 60, 59.6, 59.9, 58.8, 57.2, 54, 51.6, 49.3, 47.7],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59, 57.4, 54.2, 51.8, 49.4, 47.85],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.2, 57.6, 54.4, 52, 49.6, 48],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.4, 57.8, 54.6, 52.2, 49.8, 48.2],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 58, 54.8, 52.4, 50, 48.4],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 58.25, 55, 52.6, 50.2, 48.6],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 58.5, 55.2, 52.8, 50.3, 48.7],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 58.7, 55.4, 53, 50.5, 48.9],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 58.9, 55.6, 53.2, 50.7, 49.1],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.1, 55.8, 53.4, 50.9, 49.25],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.3, 56, 53.5, 51.1, 49.4],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.5, 56.2, 53.7, 51.25, 49.6],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 56.4, 53.9, 51.4, 49.8],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 56.6, 54.1, 51.6, 49.95],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 56.8, 54.3, 51.8, 50.1],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 57, 54.5, 52, 50.3],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 57.2, 54.7, 52.2, 50.5],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 57.4, 54.9, 52.4, 50.6],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 57.6, 55.1, 52.5, 50.8],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 57.8, 55.3, 52.7, 51],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 58, 55.5, 52.9, 51.2],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 58.2, 55.7, 53.1, 51.4],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 58.4, 55.9, 53.3, 51.6],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 58.6, 56.1, 53.5, 51.8],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 58.9, 56.3, 53.7, 51.9],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.1, 56.5, 53.85, 52.1],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.3, 56.7, 54, 52.3],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.5, 56.85, 54.2, 52.5],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 57, 54.4, 52.7],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 57.2, 54.6, 52.85],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 57.4, 54.8, 53],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 57.6, 55, 53.2],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 57.8, 55.2, 53.4],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 58, 55.4, 53.6],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 58.2, 55.6, 53.8],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 58.4, 55.8, 54.0],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 58.6, 55.9, 54.1],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 58.8, 56.1, 54.3],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59, 56.3, 54.5],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.2, 56.5, 54.7],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.4, 56.7, 54.9],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.6, 56.9, 55.05],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.8, 57.1, 55.2],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.8, 57.3, 55.4],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.8, 57.5, 55.6],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.8, 57.7, 55.8],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.8, 57.9, 56],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.8, 58.1, 56.2],
        [60, 60, 60, 60, 60, 59.6, 59.9, 59.7, 59.7, 59.7, 59.8, 58.3, 56.4]
      ];
      return huansuanbiao[row1][col1];
    }
    //泵送转化函数
    function bengsong(r, dm) {
      r = parseFloat(r);
      dm = parseFloat(dm);
      let rust = 0.03448 * Math.pow(r, 1.94) * Math.pow(10, -0.0173 * dm);
      if (rust > 60) {
        rust = 60.0;
      }
      if (rust < 10) {
        rust = 10.0;
      }
      return parseFloat(rust.toFixed(1));
    }
    //计算数组标准差
    function calculateStandardDeviation(arr) {
      arr = arr.filter(Boolean);
      const n = arr.length;
      if (n > 1) {
        var sum = function(x, y) {
          return x + y;
        };
        var square = function(x) {
          return x * x;
        };
        var mean = arr.reduce(sum) / arr.length;
        var deviations = arr.map(function(x) {
          return x - mean;
        });
        var stddev = Math.sqrt(deviations.map(square).reduce(sum) / (arr.length - 1));
        return parseFloat(stddev.toFixed(2));
      } else {
        return "";
      }
    }
    //计算数组平均值
    function calculateAverage(arr) {
      arr = arr.filter(Boolean);
      if (arr.length > 1) {
        let sum = 0;
        for (let i = 0; i < arr.length; i++) {
          sum += arr[i];
        }
        let ave = sum / arr.length;
        return ave.toFixed(2);
      } else {
        return ""
      }
    }
    //导入算法
    var fileInput = document.getElementById('fileInput');
    fileInput.addEventListener('change', () => {
      clearInput();
      importText();
    });

    function importText() {

      // 创建FileReader对象
      var reader = new FileReader();
      // 设置回调函数
      reader.onload = function() {
        // 将文件内容分割为一行一行的数组
        var lines = this.result.split('\n');
        lines = lines.map(function(line) {
          return line.replace(/\r/g, '');
        });
        lines = lines.filter(Boolean);
        // 创建一个10x16的数组
        var data2 = new Array(10);
        for (var i = 0; i < data2.length; i++) {
          data2[i] = new Array(16);
        }
        // 将数据从文本文件中读取到数组中
        for (var i = 0; i < lines.length; i++) {
          var values = lines[i].split(' ');
          for (var j = 0; j < 16; j++) {
            data2[i][j] = parseInt(values[j]);
          }
        }
        // 将数组传递给其他函数进行处理
        processData(data2);
      };
      // 读取用户选择的文件
      reader.readAsText(fileInput.files[0]);
    }

    function processData(data2) {
      for (let i = 0; i < 10; i++) {
        for (let j = 0; j < 27; j++) {
          data[i][j + 1] = "";
        }
      }
      for (let i = 0; i < data2.length; i++) {
        for (let j = 0; j < data2[i].length; j++) {
          idd = "v" + i + (j + 1);
          document.getElementById(idd).value = data2[i][j];
          data[i][j + 1] = data2[i][j];
        }
      }
      updateArray(0, 1, data2[0][0]);
    }
    //导出算法
    function exportTableToCSV(filename) {
      var csv = [];
      var rows = document.querySelectorAll("table tr");

      for (var i = 0; i < rows.length; i++) {
        var row = [],
          cols = rows[i].querySelectorAll("td, th");

        for (var j = 0; j < cols.length; j++) {
          // Get the input element inside the current cell
          var input = cols[j].querySelector("input");

          // If there is an input element, use its value; otherwise, use the cell's textContent
          var cellData = input ? input.value : cols[j].textContent;

          // If the cell data contains a comma, enclose it in double quotes
          if (cellData.indexOf(",") !== -1) {
            cellData = "\"" + cellData + "\"";
          }

          row.push(cellData);
        }

        csv.push(row.join(","));
      }

      // Download CSV file
      var csvFile = new Blob([csv.join("\n")], {
        type: "text/csv"
      });
      var downloadLink = document.createElement("a");
      downloadLink.download = filename;
      downloadLink.href = window.URL.createObjectURL(csvFile);
      downloadLink.style.display = "none";
      document.body.appendChild(downloadLink);
      downloadLink.click();
    }
    //清空input
    function clearInput() {
      document.querySelectorAll('input[type="text"], input[type="number"]').forEach(input => {
        input.value = ''; // 将每个输入字段的值设置为空字符串
      });
    }
  </script>
</body>

</html>